module.exports = {
  up: async (queryInterface, Sequelize) => {
    /**
     * Add altering commands here.
     *
     * Example:
     * await queryInterface.createTable('users', { id: Sequelize.INTEGER });
     */
    const { INTEGER, DATE, STRING } = Sequelize;

    await queryInterface.createTable('user', {
      id: { type: INTEGER, primaryKey: true, autoIncrement: true },
      uuid: { type: STRING(36), unique: true },
      name: STRING(50),
      tel: STRING(50), // 用户手机，同时也是用户登录的账号
      password: STRING(255), // 用户密码
      email: STRING(50),
      identity: INTEGER, // 用户角色（可选：超级管理员1/普通管理员0）
      address: STRING(255), // 联系地址
      state: INTEGER, // 用户状态（冻结2/未审核0/已通过1）
      department: STRING(50), // 所属机构
      role: {
        type: STRING(36),
        references: {
          model: {
            tableName: 'title',
          },
          key: 'uuid',
        },
      }, // 职称
      post: {
        type: STRING(36),
        references: {
          model: {
            tableName: 'position',
          },
          key: 'uuid',
        },
      }, // 职务名
      education: STRING(50), // 学历
      major: STRING(50), // 专业
      fk_organization: {
        type: STRING(36),
      }, // 所属公司
      age: INTEGER,
      sex: INTEGER, // 0为女， 1为男
      createTime: DATE, // 创建日期
      createdAt: DATE,
      updatedAt: DATE,
    });
  },

  down: async queryInterface => {
    /**
     * Add reverting commands here.
     *
     * Example:
     * await queryInterface.dropTable('users');
     */
    await queryInterface.dropTable('user');
  },
};
